// 这段代码定义了 Vuex 的 getters，它们是 Vuex 状态管理中的计算属性，用于从 Vuex store 中派生出一些计算值。
// 每个 getter 都是一个函数，接受 state 作为参数，并返回一个计算值

const getters = {
    active: state => state.navbar.active,// 获取导航条的激活状态
    // 获取当前父级 ID。如果 `state.file.parentId` 是 `'-1'`，则返回 `state.file.defaultParentId`，否则返回 `state.file.parentId`
    parentId: state => state.file.parentId === '-1' ? state.file.defaultParentId : state.file.parentId,
    defaultParentId: state => state.file.defaultParentId,// 获取默认父级 ID
    defaultParentFilename: state => state.file.defaultParentFilename,// 获取默认父级文件名
    fileList: state => state.file.fileList,// 获取文件列表
    multipleSelection: state => state.file.multipleSelection, // 获取多选文件列表
    fileTypes: state => state.file.fileTypes, // 获取文件类型
    breadCrumbs: state => state.breadcrumb.breadCrumbs,// 获取面包屑导航列表
    searchFlag: state => state.file.searchFlag,// 获取搜索标志，指示是否显示搜索结果
    username: state => state.user.username,   // 获取当前用户的用户名
    cacheSearchKey: state => state.file.searchKey,// 获取缓存的搜索关键字
    tableLoading: state => state.file.tableLoading,// 获取表格加载状态
    uploadTaskFlag: state => state.task.taskList.length <= 0,// 获取上传任务标志，指示是否有上传任务
    uploadTaskNum: state => state.task.taskList.length,// 获取当前上传任务的数量
    uploadTaskList: state => state.task.taskList, // 获取上传任务列表
    taskListViewFlag: state => state.task.viewFlag,// 获取上传任务视图标志，指示是否显示上传任务视图
    getUploadTask: state => (filename) => {// 获取特定文件名的上传任务
        // 在 `state.task.taskList` 中查找文件名匹配的任务项
        return state.task.taskList.find(taskItem => filename === taskItem.filename)
    }
}

export default getters